package com.boom.springapp.javafxdemo.utils;

import java.net.URL;
import java.util.Enumeration;

public class ResourceDebugTest {
    public static void main(String[] args) {
        try {
            System.out.println("=== 资源文件调试测试 ===");
            
            // 列出所有资源
            System.out.println("\n1. 查找所有可能的资源路径:");
            ClassLoader classLoader = ResourceDebugTest.class.getClassLoader();
            // 获取classpath根目录
            URL classpathRoot = classLoader.getResource("");
            System.out.println("Classpath root: " + classpathRoot);
            // 列出根目录下的文件件和文件
            
            // 尝试不同的路径格式
            String[] pathsToTry = {
                    "china-provinces.geojson",
                "com\\boom\\springapp\\javafxdemo\\china-provinces.geojson",
                    "/china-provinces.geojson",
                "china-provinces.geojson"
            };
            
            for (String path : pathsToTry) {
                URL resource = classLoader.getResource(path);
                System.out.println("路径 '" + path + "': " + (resource != null ? "找到 -> " + resource.toString() : "未找到"));
            }
            
            // 列出所有资源（如果可能）
            System.out.println("\n2. 尝试列出资源目录内容:");
            try {
                Enumeration<URL> resources = classLoader.getResources("icons");
                while (resources.hasMoreElements()) {
                    URL url = resources.nextElement();
                    System.out.println("资源目录: " + url.toString());
                }
            } catch (Exception e) {
                System.out.println("无法列出资源目录: " + e.getMessage());
            }
            
            // 检查类路径
            System.out.println("\n3. 类路径信息:");
            String classpath = System.getProperty("java.class.path");
            System.out.println("Classpath: " + classpath);
            
            // 检查当前工作目录
            System.out.println("\n4. 当前工作目录:");
            System.out.println("User dir: " + System.getProperty("user.dir"));
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}